package com.orangelife.webservice.service.propfee;

import javax.jws.WebParam;
import javax.jws.WebService;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;

import org.apache.cxf.interceptor.InInterceptors;
import org.apache.cxf.interceptor.OutInterceptors;

import com.orangelife.exception.AppBizException;
import com.orangelife.service.PropFeeType.model.PropFeeTypeDto;

@WebService
@InInterceptors(interceptors = "org.apache.cxf.interceptor.LoggingInInterceptor")
@OutInterceptors(interceptors = "org.apache.cxf.interceptor.LoggingOutInterceptor")
public interface IPropFeeTypeWebService {

	/***
	 * 获取缴费项
	 * 
	 * @param servletRequest
	 * @param payOrderID
	 * @param payMoney
	 * @param payName
	 * @param notifyID
	 * @return
	 * @throws Exception
	 */
	//
	// @GET
	// @Path("/{commID}")
	// @Produces({ "application/json" })
	// public Response statisticFeeDetail(
	// @Context HttpServletRequest servletRequest,
	// @WebParam StatisticsDto st ) throws Exception;

	/**
	 * 根据feeTypeId获取收费类目信息
	 * @param servletRequest
	 * @param feeTypeId
	 * 
	 * @return 
	 * @throws Exception
	 * */
	@GET
	@Path("/feeTypeId/{feeTypeId}")
	@Produces({ "application/json" })
	public Response getPropFeeTypeByFeeTypeId(
			@Context HttpServletRequest servletRequest,
			@PathParam("feeTypeId") String feeTypeId) throws Exception, AppBizException;

	/**
	 * 根据commId获取收费类目信息
	 * @param servletRequest
	 * @param commId
	 * @return 
	 * @throws Exception
	 * */
	@GET
	@Path("/commId/{commId}")
	@Produces({ "application/json" })
	public Response getPropFeeTypeByCommId(
			@Context HttpServletRequest servletRequest,
			@PathParam("commId") String commId) throws Exception, AppBizException;
	

	/**
	 * 根据Bean获取收费类目信息
	 * @param servletRequest
	 * @param propFeeTypeDto
	 * @return 
	 * @throws Exception
	 * */
	@POST
	@Path("/getPropFeeTypeByBean")
	@Produces({ "application/json" })
	public Response getPropFeeTypeByBean(
			@Context HttpServletRequest servletRequest,
			@WebParam PropFeeTypeDto propFeeTypeDto) throws Exception, AppBizException;

	/**
	 * 删除收费类目信息
	 * @param servletRequest
	 * @param feeTypeId
	 * @return 
	 * @throws Exception
	 * */
	@DELETE
	@Path("/{feeTypeId}")
	@Produces({ "application/json" })
	public Response deletePropFeeTypeByFeeTypeId(
			@Context HttpServletRequest servletRequest,
			@PathParam("feeTypeId") String feeTypeId) throws Exception, AppBizException;

	/**
	 * 增加收费类目信息
	 * @param servletRequest
	 * @param propFeeTypeDto
	 * @return 
	 * @throws Exception
	 * */
	@PUT
	@Path("/insertPropFeeType")
	@Produces({ "application/json" })
	public Response insertPropFeeType(
			@Context HttpServletRequest servletRequest,
			@WebParam PropFeeTypeDto propFeeTypeDto) throws Exception, AppBizException;
	
	/**
	 * 修改收费类目信息
	 * @param servletRequest
	 * @param propFeeTypeDto
	 * @return 
	 * @throws Exception
	 * */
	@POST
	@Path("/updatePropFeeType")
	@Produces({ "application/json" })
	public Response updatePropFeeType(
			@Context HttpServletRequest servletRequest,
			@WebParam PropFeeTypeDto propFeeTypeDto) throws Exception, AppBizException;
}
